/**
 * 
 */
package br.com.ac.fatureweb.view;

import java.io.Serializable;

import javax.faces.event.ActionEvent;
import javax.faces.view.ViewScoped;
import javax.inject.Named;

import br.com.ac.fatureweb.enums.Status;
import br.com.ac.fatureweb.model.vo.MonitoramentoVO;
import br.com.ac.fatureweb.utilitary.FacesUtils;

import com.google.gson.Gson;

/**
 * @author aldivone
 *
 */
@Named
@ViewScoped
public class MonitoramentoBean implements Serializable {

	private static final long serialVersionUID = -6980563863959550307L;

	private MonitoramentoVO parametersSearch;

	private String jsonMonitoramento;
	
	/**
	 * 
	 */
	public MonitoramentoBean() {
		if (getParametersSearch() == null) {
			setParametersSearch(new MonitoramentoVO());
		}
	}

	/**
	 * 
	 * Busca os dados do leituristas, bem como dos respectivos roteiros de acordo com 
	 * os parâmetros de consulta escolhidos pelo usuário.
	 * 
	 * @param event
	 */
	public void monitorar(final ActionEvent event) {
		try {
			setJsonMonitoramento(new Gson().toJson(getParametersSearch()));
		} catch (Exception e) {
			FacesUtils.addMessageError(FacesUtils.MESSAGE_ERROR_GLOBAL);
		}
	}

	/**
	 * @return the parametersSearch
	 */
	public MonitoramentoVO getParametersSearch() {
		return parametersSearch;
	}

	/**
	 * @param parametersSearch the parametersSearch to set
	 */
	public void setParametersSearch(MonitoramentoVO parametersSearch) {
		this.parametersSearch = parametersSearch;
	}
	
	/**
	 * @return the jsonMonitoramento
	 */
	public String getJsonMonitoramento() {
		return jsonMonitoramento;
	}

	/**
	 * @param jsonMonitoramento the jsonMonitoramento to set
	 */
	public void setJsonMonitoramento(String jsonMonitoramento) {
		this.jsonMonitoramento = jsonMonitoramento;
	}

	/**
	 * Lista de valores possíveis para a situação do roteiro.
	 * 
	 * @return
	 */
	public Status[] getStatuses() {
        return Status.values();
    }
}
